package com.itany.cloud.service;

import com.itany.cloud.util.ResponseResult;
import io.swagger.v3.oas.annotations.servers.Server;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;

/**
 * @author 石小俊
 */
@Service
// 指定调用的服务是谁
@FeignClient("cloud-nacos-provider")
public interface UserServiceClient {

    // 在此处,同样可以使用Spring中的注解,但是所有默认行为全部没了
    // 因此,不存在省略某个注解会自动添加的场景

    // 此处的@GetMapper表示访问哪一个请求实现该方法
    // 由于已经指定了微服务,因此,此处不需要指定协议名、域名与端口
    // 直接指定请求命令即可
    @GetMapping("/users")
    ResponseResult findAll();

    @GetMapping("/users/{id}")
    ResponseResult findById(@PathVariable("id") Integer id);

    @PostMapping("/users")
    ResponseResult addUser(@RequestParam("username") String username, @RequestParam("password") String password);

    @PutMapping("/users")
    ResponseResult modifyUser(@RequestParam("id") Integer id, @RequestParam("username") String username, @RequestParam("password") String password);

    @DeleteMapping("/users/{id}")
    ResponseResult deleteById(@PathVariable("id") Integer id);
}
